package sistema.controleVendas.persistencia;

import java.util.List;

import javax.persistence.EntityManager;

import sistema.controleVendas.entidades.Cidade;
import sistema.controleVendas.entidades.Estado;

public class GerenciarCidadesPersistencia {
	EntityManager em = Conexao.contectar();

	public void adicionarCidade(Cidade cidade){
		em.getTransaction().begin();
		em.persist(cidade);
		em.getTransaction().commit();
	}
	public void removerCidade(Cidade cidade){
		em.getTransaction().begin();
		em.remove(cidade);
		em.getTransaction().commit();
	}
	public List<Cidade> listarTodasCidades(){
		List<Cidade> cidades = em.createQuery("Select c From Cidade c").getResultList();
		return cidades;
	}
	public List<Cidade> listarCidades(Estado estado){
		List<Cidade> cidades = em.createQuery("Select c From Cidade c Where c.estado.id=:param").setParameter("param", estado.getId()).getResultList();
		return cidades;
	}
	public Cidade buscarCidadePorNome(Cidade cidade){
		Cidade cid = (Cidade)em.createQuery("Select c From Cidade c Where c.nome=:param")
		.setParameter("param", cidade.getNome()).getSingleResult();
		return cid;
	}
	public Cidade buscarCidade(Cidade cidade){
		Cidade cid = (Cidade)em.createQuery("Select c From Cidade c Where c.id=:param")
		.setParameter("param", cidade).getSingleResult();
		return cid;
	}

}
